import { NullablePromise } from "pao-aop";
import { DataList } from "../business/models/user";
import { CategorySign } from "./categorySign";
import { SingleProductSign } from "./singleProductSign";
import { ExternalLinksSign } from "./externalLinksSign";
import { SignAttributeLabel, SignAttributeIndex, SignAttributeType, SignType } from "./baseSign";

/**
 * 企业标识
 */
export class CompanySign {
    account?: string;
    /** 
     * key编号（前台使用，antd中的table中使用，后台忽略该字段） 
     */
    key?: string;
    /** 索引 */
    id?: string;
    /** 企业标识 */
    handle_code?: string;
    /** 企业照片 */
    company_picture?: string[];
    /** 企业名称 */
    handle_name?: string;
    /** 标识分类 */
    handle_type?: string;
    /** 用户ID */
    user_id?: string;
    /** 二维码图片 */
    rc_code?: string;
    /** 创建时间 */
    create_date?: string;
    /** 行业类型 */
    industry_type?: string;

    /** 修改时间 */
    modify_date?: string;
    /**
     * 组织结构代码
     */
    organization?: string;
    /**
     * 手机号码
     */
    mobile?: any;
    /** 固定电话 */
    tel?: any;
    /** 传真 */
    fax?: any;
    /** 电子邮箱 */
    email?: any;
    /** 公司地址 */
    address?: any;
    /** 企业介绍 */
    introduce?: string;
    /** 企业官网 */
    website?: string;
    /** 自定义属性 */
    custom_attribute?: CustomAttribute[];
    /** 企业logo图片 */
    qr_code_logo_picture?: string;

}

export class CompanySignAttributeLabel extends SignAttributeLabel {
    handle_name = '企业名称';
}

export class CompanySignAttributeIndex extends SignAttributeIndex {
    handle_name = 1;
}

export class CompanySignAttributeType extends SignAttributeType {
    handle_name = SignType.Text;
    handle_type = SignType.Text;

}

/**
 * 自定义手机属性对象
 */
export interface CustomAttribute {
    /** 格式 */
    format?: string;
    /** 标签 */
    label?: string;
    /** 值 */
    value?: string;
}
/**
 * 企业信息对象
 */
export interface Company {
    account?: string;
    /** 格式 */
    id?: string;
    /** 用户ID */
    user_id?: string;
    /** 企业经办人姓名 */
    manager_name?: string;
    /** 联系方式 */
    contact?: string;
    /** 经办人身份证 */
    id_picture?: any;
    /** 营业执照 */
    license?: string[];
    /** 经办人身份证正面（最终拼接到经办人身份证字段） */
    id_picture_positive?: string[];
    /** 经办人身份证反面（最终拼接到经办人身份证字段） */
    id_picture_negative?: string[];
}
/**
 * 自定义手机对象属性
 */

export interface MoblieObject {
    /** 联系人名称 */
    contact: string;
    /** 电话号码 */
    moblie: string;
}
/**
 * 自定义固话对象属性
 */

export interface TelObject {
    /** 联系人名称 */
    area: string;
    /** 电话号码 */
    tel: string;
}

/**
 * 单品查询条件对象
 */
export interface SingleProductSignCondition {
    /** 单品名称 */
    handle_name?: string;
    /** 单品标识 */
    handle_code?: string;
    /** 创建时间 */
    create_date?: string;
    /** id */
    id?: string;
}
/**
 * 品类查询条件对象
 */
export interface Condition {
    /** 单品名称 */
    handle_name?: string;
    /** 单品标识 */
    handle_code?: string;
    /** 创建时间 */
    create_date?: string;
    /** id */
    id?: string;
}
/**
 * 单品服务对象
 * yzy
 */
export class ICompanyTemplateSignService {
    /**
     * 查询单品标识列表
     */
    get_company_list?(condition?: Condition, page?: number, count?: number): NullablePromise<DataList<CompanySign> | undefined> {
        return undefined;
    }
    /**
     * 增加/修改
     */
    update_company?(companySign?: CompanySign, company?: Company): NullablePromise<Boolean | undefined> {
        return undefined;
    }
    /**
     * 根据ID获取企业标识
     */
    get_company_sign?(id?: string): NullablePromise<CompanySign | undefined> {
        return undefined;
    }
    /**
     * 根据ID获取企业信息
     */
    get_company?(id: string): NullablePromise<Company | undefined> {
        return undefined;
    }
    /**
     * 获取品类标识列表
     */
    get_category_list?(ondition?: Object, page?: number, count?: number): NullablePromise<DataList<CategorySign> | undefined> {
        return undefined;
    }
    /**
     * 获取单品标识列表
     */
    get_single_list?(ondition?: Object, page?: number, count?: number): NullablePromise<DataList<SingleProductSign> | undefined> {
        return undefined;
    }
    /**
     * 获取外链标识列表
     */
    get_externam_link_list?(ondition?: Object, page?: number, count?: number): NullablePromise<DataList<ExternalLinksSign> | undefined> {
        return undefined;
    }
    /** 删除 */
    delete_company?(ids?: string[]): NullablePromise<boolean | undefined> {
        return undefined;
    }
    /** 获取当前用户企业标识 */
    get_current_user_company_sign?(): NullablePromise<CompanySign | undefined> {
        return undefined;
    }
    /** 新增排序 */
    insert_preview?(data: CompanySign): NullablePromise<any | undefined> {
        return undefined;
    }
    /** 是否存在企业标识 */
    is_insert?(data: string): NullablePromise<Company | undefined> {
        return undefined;
    }
    /** base64上传方法 */
    upload_rc_code?(handle_code: string, base64_str: string): NullablePromise<any | undefined> {
        return undefined;
    }
    /** 获取二维码 */
    get_qr_code?(handle_code: string, use_logo?: boolean, logo?: string): NullablePromise<any | undefined> {
        return undefined;
    }
    /**
     * 获取当前用户的所有品类标识列表
     */
    get_single_category_list?(account?: string): NullablePromise<DataList<CategorySign> | undefined> {
        return undefined;
    }
}